home *** CD-ROM | disk | FTP | other *** search
- 10 'GROW PROGRAM
- 20 'JANUARY VOL 6 #1, 1980
- 30 'Creative Computing
- 40 '
- 1000 CLS
- 1010 GOSUB 2000
- 1020 GOSUB 3000
- 1030 GOSUB 4000
- 1040 GOTO 1020
- 2000 'INITIALIZE
- 2010 'CLEAR 300,2
- 2020 P=0
- 2030 N$="INIT"
- 2040 I$=" INTRO "
- 2060 GOSUB 4000
- 2070 GOTO 1020
- 3000 'INPUT LINE
- 3010 LINE INPUT ">";I$
- 3020 I$=" "+I$+" "
- 3030 GOTO 1030
- 4000 'PROCESS LINE
- 4010 OPEN "I",1,N$
- 4020 GOSUB 5000
- 4040 IF F=1 THEN 4110
- 4045 CLOSE
- 4050 OPEN "I",1,"DEFAULT"
- 4060 GOSUB 5000
- 4080 IF F=1 THEN 4110
- 4090 GOSUB 5800
- 4100 GOTO 4120
- 4110 GOSUB 5400
- 4120 CLOSE
- 4130 RETURN
- 5000 'FIND LINE
- 5010 F=0
- 5020 GOSUB 6000
- 5030 IF EOF(1) THEN RETURN
- 5040 GOSUB 6200
- 5050 IF S$="" THEN 5020
- 5060 S$=" "+S$+" "
- 5070 IF INSTR(I$,S$)=0 THEN 5020
- 5080 F=1
- 5090 RETURN
- 5400 'DO ACTIONS
- 5410 GOSUB 6000
- 5420 GOSUB 6200
- 5430 IF S$="" THEN RETURN
- 5440 T$=LEFT$(S$,1)
- 5443 IF T$="$" THEN I$=" "+MID$(T$,2,LEN(T$)-1)+" ": GOTO 5420
- 5545 IF T$="C" THEN CLS: GOTO 5420
- 5450 IF T$="P" THEN PRINT MID$(S$,2): GOTO 5420
- 5453 IF T$="*" THEN PRINT "YOUR SCORE IS";P;".":GOTO 5420
- 5460 IF T$="Q" THEN PRINT "QUIT WITH ";P;" POINTS.":END
- 5470 IF T$="+" THEN GOSUB 6400:P=P+N:GOTO 5420
- 5480 IF T$="-" THEN GOSUB 6400:P=P-N:GOTO 5420
- 5490 IF T$="G" THEN GOSUB 7000:RETURN
- 5500 IF T$="X" THEN GOSUB 8000:RETURN
- 5800 'RANDOM RESPONSE
- 5810 R=INT(RND*3)+1
- 5820 IF R=1 THEN PRINT "HUH?" ELSE IF R=2 THEN PRINT "WHAT" ELSE PRINT "I DON'T UNDERSTAND"
- 5830 RETURN
- 6000 'SKIP BLOCK
- 6010 IF EOF(1) THEN S$="":RETURN
- 6020 LINE INPUT #1,S$
- 6030 IF S$<>"" THEN 6010
- 6040 RETURN
- 6200 'GET LINE
- 6210 IF EOF(1) THEN S$="" ELSE LINE INPUT #1,S$
- 6220 RETURN
- 6400 'CONVERT
- 6410 N=0
- 6420 T=2
- 6430 IF T>LEN(S$) THEN RETURN
- 6440 N=N+10+ASC(MID$(S$,T,1))-ASC("0")
- 6450 T=T+1
- 6460 GOTO 6430
- 6600 'INPUT NEW DATA
- 6610 LINE INPUT ":";I$
- 6620 PRINT #1,I$
- 6630 IF I$<>"" THEN 6610
- 6640 RETURN
- 6800 'COPY MODE
- 6805 CLOSE
- 6810 OPEN "I",2,N$
- 6820 OPEN "O",1,"TEMP"
- 6830 IF EOF(2) THEN RETURN
- 6840 LINE INPUT #2,I$
- 6850 PRINT #1,I$
- 6860 GOTO 6830
- 7000 'GOTO NEW NODE
- 7010 IF (LEN(S$)<2) OR (LEN(S$)>9) THEN RETURN
- 7020 CLOSE
- 7030 N$=MID$(S$,2)
- 7040 ON ERROR GOTO 7100
- 7050 OPEN "I",1,N$
- 7060 GOSUB 6200
- 7070 IF S$="" THEN 7150
- 7080 PRINT S$
- 7090 GOTO 7060
- 7100 RESUME 7110
- 7110 CLOSE
- 7120 OPEN "O",1,N$
- 7130 PRINT "DESCRIBE ";N$
- 7140 GOSUB 6600
- 7150 ON ERROR GOTO 0
- 7160 RETURN
- 8000 'EXTEND MODE
- 8010 CLOSE
- 8020 GOSUB 6800
- 8030 PRINT "KEYWORDS/PHRASES"
- 8040 GOSUB 6600
- 8050 PRINT "ACTIONS"
- 8060 GOSUB 6600
- 8068 CLOSE
- 8069 KILL N$
- 8070 NAME "TEMP" AS N$
- 8080 RETURN